230 research outputs found

    Computation in Focused Intuitionistic Logic

    Get PDF
    International audienceWe investigate the control of evaluation strategies in a variant of the λ-calculus derived through the Curry-Howard correspondence from LJF, a sequent calculus for intuitionistic logic implementing the focusing technique. The proof theory of focused intuitionistic logic yields a single calculus in which a number of known λ-calculi appear as subsystems obtained by restricting types to a certain fragment of LJF. In particular, standard λ-calculi as well as the call-by-push-value calculus are analysed using this framework, and we relate cut elimination for LJF to a new abstract machine subsuming well-known machines for these different strategies

    A Notion of Glue Expressiveness for Component-Based Systems

    Full text link

    Cutting out continuations

    Get PDF
    In the field of program transformation, one often transforms programs into continuation-passing style to make their flow of control explicit, and then immediately removes the resulting continuations using defunctionalisation to make the programs first-order. In this article, we show how these two transformations can be fused together into a single transformation step that cuts out the need to first introduce and then eliminate continuations. Our approach is calculational, uses standard equational reasoning techniques, and is widely applicable

    Substitution, jumps, and algebraic effects

    Get PDF
    Contains fulltext : 129931.pdf (author's version ) (Open Access

    JKarelRobot: A Case Study in Supporting Levels of Cognitive Development in the Computer Science Curriculum

    Get PDF
    We introduce a new software tool, JKarelRobot, for supporting an Inside/Out pedagogy in introductory programming courses. Extending the original conception of Karel the Robot , with Bloom\u27s Taxonomy of Educational Objectives as a guiding principle, we have provided a mechanism for designing exercises that are cognitively appropriate to the developmental levels of our students. JKarelRobot is platform independent (written in Java) and language/paradigm independent, supporting Pascal, Java, and Lisp style environments

    Counterexample-Guided Precondition Inference

    Get PDF
    Abstract. The precondition for an assertion within a procedure is use-ful for understanding, verifying and debugging programs. As the proce-dure might be used in multiple calling-contexts within the program, the precondition should be sufficiently precise to enable re-use. We present an extension of counterexample-guided abstraction refinement (CEGAR) for automated precondition inference. Starting with an overapproxima-tion of both the set of safe and unsafe states, we iteratively refine them until they become disjoint. The resulting precondition is then neces-sary and sufficient for the validity of the assertion, which prevents false alarms. We have implemented our approach and present experimental results using string and array-manipulating programs.

    Process types as a descriptive tool for interaction

    Get PDF
    We demonstrate a tight relationship between linearly typed π-calculi and typed λ-calculi by giving a type-preserving translation from the call-by-value λµ-calculus into a typed π-calculus. The λµ-calculus has a particularly simple representation as typed mobile processes. The target calculus is a simple variant of the linear π-calculus. We establish full abstraction up to maximally consistent observational congruences in source and target calculi using techniques from games semantics and process calculi

    Towards meta-interpretive learning of programming language semantics

    Get PDF
    We introduce a new application for inductive logic programming: learning the semantics of programming languages from example evaluations. In this short paper, we explored a simplified task in this domain using the Metagol meta-interpretive learning system. We highlighted the challenging aspects of this scenario, including abstracting over function symbols, nonterminating examples, and learning non-observed predicates, and proposed extensions to Metagol helpful for overcoming these challenges, which may prove useful in other domains.Comment: ILP 2019, to appea
    corecore